//
//  MyselfSingleton.swift
//  CandyDate
//
//  Created by zolobdz on 2017/9/26.
//  Copyright © 2017年 HeChao. All rights reserved.
//

import Foundation

class MyselfSingleton {

    static let shared = MyselfSingleton()
    private init(){
        if let dict = UserDefaults.standard.object(forKey: CDUserDefaultKey.myselfDataKey) as? Dictionary<String,Any>
        {
            if let myself = User(JSON: dict)
            {
                userInfo = myself
//                config = myself.config
//                lastDatePost = myself.lastDate
//                signatureToken = ""
//                guard let token = config?.token else {
//                    return
//                }
//                signatureToken = token.aesDecrypt()
            }
        }
    }

//    //MARK: Property
//    
    var userInfo: User?
//    var config: UserConfigure?
//    var lastDatePost: MyDatePost?
//    var signatureToken: String = ""
//    
//    //MARK: 只读计算属性
    var isLogin: Bool {
        guard userInfo != nil else {
            return false
        }
        
        if userInfo!.userID.isEmpty
        {
            return false
        }
        return true
    }
//
//    var vipLevel: CDVipLevel{
//        guard let vip = userInfo?.memberType else {
//            return .none
//        }
//        return CDVipLevel(rawValue: vip) ?? .none
//    }
//    
//    //MARK: Public
//    
    func archiveToLocal(){
        if userInfo != nil {
            let dict = userInfo?.toJSON()
            UserDefaults.standard.set(dict, forKey: CDUserDefaultKey.myselfDataKey)
        }
    }
//
    func updateMyself(_ myself: User) {
        userInfo = myself
//        config = myself.config
//        lastDatePost = myself.lastDate

//        CDBugTrackService.shared.setupUserData() // 注册bugtags追踪信息
//        CDIAPService.shared.checkHistory() // 验证此用户的支付receipt
//        guard let token = config?.token else {
//            return
//        }
//        signatureToken = token.aesDecrypt()
        archiveToLocal()
    }
//
//    
    func logOutcClean() {
        userInfo = nil
//        config = nil
//        lastDatePost = nil
//        signatureToken = ""
//        
        UserDefaults.standard.removeObject(forKey: CDUserDefaultKey.myselfDataKey)
        CDUtility.cleanAuthVideoCache()
    }
//
//    func reduceCoin() {
//        guard let coin = MyselfSingleton.shared.userInfo?.coin,!coin.isEmpty else {
//            return
//        }
//        if let count = Int(coin),count >= 1{
//            MyselfSingleton.shared.userInfo?.coin = (count - 1).stringValue()
//            archiveToLocal()
//        }
//    }
}

